/**
 * 混入就是能够将一个或多个父类的功能添加到子类中，而无需继承这些父类。
 * 混入的多个类中有相同的方法，则后面位置的会覆盖前面类中的方法
 * Dart的混入原则：相同方法被覆盖，并且with后面类中的方法会覆盖前面类中的方法
 * 如果混入的类覆写了相同的方法，则以混入的类中的方法为最终结果
 */
void main(List<String> args) {
  // Student student = Student();
  // student.run();
  // student.water();
  Worker worker = Worker();
  worker.run();
  worker.water();
}
class Person {
  String nation = '中国';
  void run(){
    print('跑步');
  }
}
class Food{
  String type = '蔬菜';
  void water(){
    print('浇水');
  }
  void run(){
    print('搬运蔬菜');
  }
}

class Student implements Person,Food {
  @override
  String nation = '日本';
  @override
  void run(){
    print('学生在跑');
  }
  @override
  String type = '菜';
  @override
  void water(){
    print('学生浇水');
  }
}
class Worker with Food,Person {
  @override
  void run(){
    print('work run');
  }
}